package com.pond.pond.mapper;

import com.pond.pond.domain.AppVersion;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * App版本信息Mapper接口
 */
public interface AppVersionMapper {
    
    /**
     * 查询App版本信息
     *
     * @param id App版本信息主键
     * @return App版本信息
     */
    public AppVersion selectAppVersionById(Long id);

    /**
     * 查询App版本信息列表
     *
     * @param appVersion App版本信息
     * @return App版本信息集合
     */
    public List<AppVersion> selectAppVersionList(AppVersion appVersion);

    /**
     * 新增App版本信息
     *
     * @param appVersion App版本信息
     * @return 结果
     */
    public int insertAppVersion(AppVersion appVersion);

    /**
     * 修改App版本信息
     *
     * @param appVersion App版本信息
     * @return 结果
     */
    public int updateAppVersion(AppVersion appVersion);

    /**
     * 删除App版本信息
     *
     * @param id App版本信息主键
     * @return 结果
     */
    public int deleteAppVersionById(Long id);

    /**
     * 批量删除App版本信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAppVersionByIds(Long[] ids);

    /**
     * 根据版本号查询版本信息
     *
     * @param versionCode 版本号
     * @return App版本信息
     */
    public AppVersion selectAppVersionByVersionCode(String versionCode);

    /**
     * 查询最新版本信息
     *
     * @return App版本信息
     */
    public AppVersion selectLatestVersion();

    /**
     * 根据构建号查询版本信息
     *
     * @param buildNumber 构建号
     * @return App版本信息
     */
    public AppVersion selectAppVersionByBuildNumber(Integer buildNumber);

    /**
     * 清除所有最新版本标记
     *
     * @return 结果
     */
    public int clearAllLatestFlags();

    /**
     * 设置指定版本为最新版本
     *
     * @param id 版本ID
     * @return 结果
     */
    public int setAsLatestVersion(Long id);

    /**
     * 查询活跃版本列表
     *
     * @return App版本信息集合
     */
    public List<AppVersion> selectActiveVersions();
}